package web.replaceContent;

import java.util.Arrays;
import java.util.List;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.Panel;

public class ReplaceContentHome extends WebPage{
	private static final long serialVersionUID = 1L;
	private final String idPanel = "panel_cambiante";
	private Integer contador;
	private List<? extends Panel> paneles;
	private Form<Void> form;

	public ReplaceContentHome() {
		inicializar();
		this.add(form.add(
			botonCambiarPaneles(),
			paneles.get(contador)
		));
	}

	protected void inicializar() {
		form = new Form<Void>("form");
		contador = 0;
		PrimerContenido primerContenido = new PrimerContenido(idPanel);
		SegundoContenido segundoContenido = new SegundoContenido(idPanel);
		paneles = Arrays.asList(primerContenido, segundoContenido);
	}

	private void cambiarPanel() {
		Panel panelActual = paneles.get(contador);
		contador = (contador+1) % paneles.size();
		Panel panelAMostrar = paneles.get(contador);
		
		panelActual.replaceWith(panelAMostrar);
	}

	private Component botonCambiarPaneles() {
		return new AjaxButton("boton") {
			private static final long serialVersionUID = 1L;

			@Override
			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
				cambiarPanel();
				target.add(form);
			}
			
			@Override
			protected void onError(AjaxRequestTarget target, Form<?> form) {}
		};
	}
}